"""Lable组件的使用"""
from tkinter import *
from tkinter import messagebox

class Application(Frame):

    def __init__(self, master=None):
        """初始化application组件"""
        super().__init__(master)  # 调用Frame的构造器
        self.master = master  # 把传递进来的tk设置给自己
        self.pack()  # 设置布局管理器
        self.createWidget()

    def createWidget(self):
        """
        创建Label组件的使用
        1. width,height： 用于指定区域大小，如果显示是文本，则以单个英文字符 大小为单位(一个汉字宽度占 2 个字符位置，
           高度和英文 字符一样)；如果显示是图像，则以像素为单位。默认值 是根据具体显示的内容动态调整。
        2. font 指定字体和字体大小，如：font = (font_name,size)
        3. image: 显示在 Label 上的图像，目前 tkinter 只支持 gif 格式。
        4. fg 和 bg fg（foreground）:前景色、bg（background）:背景色
        5. justify 针对多行文字的对齐，可设置 justify 属性，可选值"left", "center" or "right"
        """
        self.label01 = Label(self, text="百战程序员", width=10, height=2,bg="black", fg="white")
        self.label01["text"] = "ccc"
        self.label01.config(fg="red", bg="green")  # 覆盖了初始化的Label组件
        self.label01.pack()

        self.label02 = Label(self, text="高老师", width=10, height=2,bg="blue", fg="white", font=("黑体", 30))
        self.label02.pack()

        # 显示图像
        global photo  # 把photo声明成全局变量。如果是局部变量，本方法执行完毕后，图像对象销毁，窗口显示不出图像。
        photo = PhotoImage(file="imgs/logo.gif")
        self.label03 = Label(self, image=photo)
        self.label03.pack()
        # relief 表示边界的效果
        self.label04 = Label(self, text="北京尚学堂\n百战程序员\n老高好帅，就是做饭不行",borderwidth=5, relief="groove", justify="right")
        self.label04.pack()

    def songhua(self):
        messagebox.showinfo("送花", "送你99朵玫瑰花")

# 不需要改
if __name__ == '__main__':
    root = Tk()
    root.geometry("500x400+200+300")
    root.title("测试Label组件")
    app = Application(master=root)
    root.mainloop()